import 'package:flutter/material.dart';

// 应用入口函数
void main() {
  runApp(const MyApp());
}

// 根组件，使用 MaterialApp
class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter SingleChildScrollView 演示',
      theme: ThemeData(
        primarySwatch: Colors.teal, // 换个主题色
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: const VerticalLettersScreen(), // 设置主屏幕
    );
  }
}

// 演示屏幕，这里使用 StatelessWidget 因为内容是固定的
class VerticalLettersScreen extends StatelessWidget {
  const VerticalLettersScreen({super.key});

  @override
  Widget build(BuildContext context) {
    // 包含所有大写字母的字符串
    String alphabetString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    return Scaffold(
      appBar: AppBar(
        title: const Text('SingleChildScrollView 示例'),
        backgroundColor: Theme.of(context).primaryColor,
      ),
      body: SingleChildScrollView(
        padding: const EdgeInsets.all(16.0), // 为内容添加一些内边距
        child: Center(
          // 将 Column 居中显示 (可选，如果希望内容在水平方向居中)
          child: Column(
            // mainAxisAlignment: MainAxisAlignment.center, // 如果想让字母在垂直方向也居中 (但因为是滚动视图，通常从顶部开始)
            crossAxisAlignment:
                CrossAxisAlignment.center, // 让Text组件在交叉轴（水平）方向居中
            children:
                alphabetString
                    .split('') // 将字符串分割成单个字符的列表
                    .map(
                      (char) => Padding(
                        // 为每个Text组件添加一些垂直间距
                        padding: const EdgeInsets.symmetric(vertical: 8.0),
                        child: Text(
                          char,
                          style: const TextStyle(
                            fontSize: 24.0,
                            fontWeight: FontWeight.bold,
                          ), // 增大字体并加粗
                          textScaler: const TextScaler.linear(
                            2.0,
                          ), // 进一步放大字体，与讲义示例保持一致
                        ),
                      ),
                    )
                    .toList(), // 将 map 的结果转换为 List<Widget>
          ),
        ),
      ),
    );
  }
}
